package formatter;

import logging.Logger;
import AdapterSlf4j.LoggerAdapter;

public class LineNumberPattern implements MessagePattern {

/*
 * se tomo el tercer elemento de la pila el cual hace referencia a la clase
 * invocante, en este caso es esta
 * 
 * @see formatter.MessagePattern#applyPattern()
 */
	public String applyPattern() {

		String notFile = "";
		StackTraceElement[] element = Thread.currentThread().getStackTrace();

		if (element != null) {
			int position = element.length - 1;
			while (position >= 0){
				if (element[position].getClassName().equals(LoggerAdapter.class.getName()) ||
						element[position].getClassName().equals(Logger.class.getName()) ||
						element[position].getClassName().equals(FormatterTrad.class.getName()) ||
						element[position].getClassName().equals(FormatterJson.class.getName())){
						break;	
						}
				position--;
			}
			return (Integer.toString(element[position+1].getLineNumber()));
		}
		return notFile;
	}

}
